"""
案例二： 传递对象参数，添加会员
需求：
1. 调用MemberService服务中add添加会员接口， 获取响应数据并打印
2. 请求参数（ 档案号:D0001, 姓名:李白, 手机号： 13020210002）
3. 请求参数Member对应的完整包名和类名： com.itheima.pojo.Member

实现步骤分析：
- 调用服务接口时， 如果传递的是一个实体类， 需要通过class指定参数对象的类型
- 手机号需要唯一
- 请求参数：{"fileNumber":"D0001", "name":"李白", "phoneNumber":"13020210002",
"class":"com.itheima.pojo.Member"}

dubbo>ls -l MemberService
void add(com.itheima.pojo.Member)

接口定义：void add(Member member)
接口说明：添加会员
服务名称：MemberService
方法名称：add
参数说明：
        1. 一个实体类，根据接口文档组装成字典格式
        2. 需要通过class指定参数对象的类型
        3. {"fileNumber":"D0001", "name":"李白", "phoneNumber":"13020210002", "class":"com.itheima.pojo.Member"}
返回说明：
        1. 返回'null'，说明添加成功
        2. 返回'Failed'，说明添加失败

步骤
# 1. 导包
# 2. 创建DubboClient对象
# 3. 调用服务接口
# 4. 获取响应数据
"""

# 1. 导包
from dubboclient import DubboClient

# 2. 创建DubboClient对象
dubbo_client = DubboClient("211.103.136.244", 6502)

# 3. 调用服务接口
info = {"fileNumber": "D0001", "name": "李白", "phoneNumber": "13020210011",
        "class": "com.itheima.pojo.Member"}
response = dubbo_client.invoke("MemberService", "add", info)

# 4. 获取响应数据
print("response ===", response)
